/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pkgMetodoPyramid.pkgNegocio;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author Administrador
 */
public class ReqRespPyramid {

    private ArrayList lstPyramid = null;
    private EntityPyramid grupoAbierto = null;
    private int maxCantVarones;
    private int maxCantMujeres;
    private double maxPorcVarones;
    private double maxPorcMujers;
    private double maxPorcVTotal;
    private double maxPorcMTotal;

    public ReqRespPyramid() {
        lstPyramid = new ArrayList();
        maxCantVarones = 0;
        maxCantMujeres = 0;
        maxPorcVarones = 0;
        maxPorcMujers = 0;
        maxPorcVTotal = 0;
        maxPorcMTotal = 0;
    }

    public void addEntityPyramid(EntityPyramid p) {
        lstPyramid.add(p);
        setGrupoAbierto(p);
        setMaxValues(p);
    }

    public Iterator getIterator() {
        return lstPyramid.iterator();
    }

    public void setEntityPyramid(EntityPyramid p) {
        int indice = lstPyramid.indexOf(p);
        if (indice >= 0) {
            lstPyramid.set(indice, p);
            setGrupoAbierto(p);
            setMaxValues(p);
        }
    }

    public EntityPyramid getEntityPyramid(int indice) {

        if (indice >= 0 && indice < getCountEntity()) {
            return (EntityPyramid) lstPyramid.get(indice);
        }
        return null;
    }

    private void setGrupoAbierto(EntityPyramid p) {
        if (p.isGrupoAbierto()) {
            grupoAbierto = p;
        }
    }

    private void setMaxValues(EntityPyramid p) {
        if (p.getVarones() != null && p.getVarones().intValue() > getMaxCantVarones()) {
            maxCantVarones=p.getVarones().intValue();
        }
        if (p.getMujeres() != null && p.getMujeres().intValue() > getMaxCantMujeres()) {
            maxCantMujeres = p.getMujeres().intValue();
        }
        if (p.getPorc_varones() != null && p.getPorc_varones().doubleValue() > getMaxPorcVarones()) {
            maxPorcVarones = p.getPorc_varones().doubleValue();
        }
        if (p.getPorc_mujers() != null && p.getPorc_mujers().doubleValue() > getMaxPorcMujers()) {
            maxPorcMujers = p.getPorc_mujers().doubleValue();
        }
        if (p.getPorc_vtotal() != null && p.getPorc_vtotal().doubleValue() > getMaxPorcVTotal()) {
            maxPorcVTotal = p.getPorc_vtotal().doubleValue();
        }
        if (p.getPorc_mtotal() != null && p.getPorc_mtotal().doubleValue() > getMaxPorcMTotal()) {
            maxPorcMTotal = p.getPorc_mtotal().doubleValue();
        }
    }

    /**
     * @return the grupoAbierto
     */
    public EntityPyramid getGrupoAbierto() {
        return grupoAbierto;
    }

    public boolean poseeEntity() {
        if (lstPyramid == null || lstPyramid.isEmpty()) {
            return false;
        }
        return true;
    }

    public int getCountEntity() {
        if (lstPyramid == null || lstPyramid.isEmpty()) {
            return 0;
        }
        return lstPyramid.size();

    }

    /**
     * @return the maxCantVarones
     */
    public int getMaxCantVarones() {
        return maxCantVarones;
    }

    /**
     * @param maxCantVarones the maxCantVarones to set
     */
    public void setMaxCantVarones(int maxCantVarones) {
        this.maxCantVarones = maxCantVarones;
    }

    /**
     * @return the maxCantMujeres
     */
    public int getMaxCantMujeres() {
        return maxCantMujeres;
    }

    /**
     * @return the maxPorcVarones
     */
    public double getMaxPorcVarones() {
        return maxPorcVarones;
    }

    /**
     * @return the maxPorcMujers
     */
    public double getMaxPorcMujers() {
        return maxPorcMujers;
    }

    /**
     * @return the maxPorcVTotal
     */
    public double getMaxPorcVTotal() {
        return maxPorcVTotal;
    }

    /**
     * @return the maxPorcMTotal
     */
    public double getMaxPorcMTotal() {
        return maxPorcMTotal;
    }

    
}
